style.scss 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. .goal-widget {
  2. width: 100%;
  3. padding: 16px;
  4. font-family: 'Pretendard', sans-serif;
  5. }
  6. .goal-widget--loading {
  7. color: #666;
  8. text-align: center;
  9. }
  10. .goal-title {
  11. text-align: center;
  12. margin-bottom: 12px;
  13. font-size: var(--goal-title-font-size, 18px);
  14. font-family: var(--goal-title-font-family, inherit);
  15. color: var(--goal-title-color, #FFFFFF);
  16. font-weight: 700;
  17. }
  18. .goal-bar-wrapper {
  19. position: relative;
  20. width: 100%;
  21. border-radius: 8px;
  22. overflow: hidden;
  23. height: var(--goal-bar-height);
  24. min-height: 24px;
  25. }
  26. .goal-bar-bg {
  27. width: 100%;
  28. height: 100%;
  29. border-radius: 8px;
  30. background-color: var(--goal-bar-bg-color);
  31. }
  32. .goal-bar-fill {
  33. height: 100%;
  34. border-radius: 8px;
  35. width: var(--goal-bar-fill-width, 0%);
  36. transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  37. position: relative;
  38. background-color: var(--goal-bar-color);
  39. &::after {
  40. content: '';
  41. position: absolute;
  42. top: 0;
  43. left: 0;
  44. right: 0;
  45. bottom: 0;
  46. background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%);
  47. animation: shimmer 2s infinite;
  48. }
  49. }
  50. .goal-bar-text {
  51. position: absolute;
  52. inset: 0;
  53. display: flex;
  54. align-items: center;
  55. justify-content: center;
  56. z-index: 1;
  57. font-size: var(--goal-amount-font-size);
  58. color: var(--goal-amount-color);
  59. font-weight: 600;
  60. white-space: nowrap;
  61. pointer-events: none;
  62. }
  63. @keyframes shimmer {
  64. 0% { transform: translateX(-100%); }
  65. 100% { transform: translateX(100%); }
  66. }